package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后退出了自动关闭特性
 * 可以用更简短的语法在异常处理机制中关闭如:"流"的操作
 *
 * @see exception.FinallyDemo2
 */
public class AutoCloseableDemo {
    public static void main(String[] args) {
        /*
            自动关闭特性是编译器认可，而非虚拟机，编译器会将代码改为在finally中关闭流
            代码可参考FinallyDemo2
         */
        try(
            //只有实现了java.io.AutoCloseable接口的类才可以在这里定义
            //java中所有的流都实现了该接口
            FileOutputStream fos = new FileOutputStream("fos.dat");
//            int s = 1;//编译不通过
//            String str = "abc";//编译不通过
        ){
            int d = 1;
            fos.write(d);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}




